// package com.yxc.mybatisplusdemo.config;
//
// import iie.cas.common.utils.DateTimeUtils;
// import iie.cas.common.utils.FileUtils;
// import iie.cas.common.utils.SpringContextHolder;
// import iie.cas.common.utils.StringUtils;
// import org.springframework.core.env.Environment;
// import org.springframework.stereotype.Component;
//
// import java.io.File;
// import java.io.IOException;
// import java.nio.charset.StandardCharsets;
//
// /**
//  * 日志输出到文件
//  *
//  * @author: 杨旭晨
//  * @time: 2022/4/25 10:13
//  **/
// @Component
// public class MyStdoutLogger extends com.p6spy.engine.spy.appender.StdoutLogger {
//
//     public static final Long logFileSize = 10 * 1024 * 1024L;
//
//     @Override
//     public void logText(String text) {
//         // 本方法没有在spring当中管理，所以使用SpringContextHolder获取环境变量
//         Environment env = SpringContextHolder.getBean("environment");
//         String active = env.getProperty("spring.profiles.active");
//         // dev环境，输出到控制台
//         if ("dev".equals(active) || "dev2".equals(active)) {
//             System.err.println(text);
//             return;
//         }
//         // 其他环境，输出到文件
//         String logFile = getLogFile();
//         try {
//             FileUtils.writeStringToFile(new File(logFile), text + "\n", StandardCharsets.UTF_8, true);
//         } catch (IOException e) {
//             e.printStackTrace();
//         }
//     }
//
//     private String getLogFile() {
//         String rootDir = System.getProperty("user.dir");
//         if (StringUtils.isEmpty(rootDir)) {
//             rootDir = "/opt/log/app";
//         }
//         String currentDateStr = DateTimeUtils.getCurrentDateStr();
//         // 日志文件目录
//         String sqlLogFilePath = FileUtils.getFilePath(rootDir, "sqlLog");
//         String logFilePath = FileUtils.getFilePath(sqlLogFilePath, currentDateStr);
//         File logFileDir = new File(logFilePath);
//         // 判断目录是否存在
//         if (!logFileDir.exists()) {
//             logFileDir.mkdirs();
//         }
//         // 获取目录下文件个数
//         File[] logFiles = logFileDir.listFiles();
//         int fileNum = 1;
//         if (logFiles != null && logFiles.length > 0) {
//             // 获取最后一个文件
//             File logFile = logFiles[logFiles.length - 1];
//             // 判断文件大小
//             if (FileUtils.sizeOf(logFile) > logFileSize) {
//                 fileNum = fileNum + 1;
//             }
//         } else {
//             fileNum = 1;
//         }
//         // 获取最后一个文件
//         return FileUtils.getFilePath(logFilePath, "sql-" + fileNum + ".log" );
//     }
// }
